This invention relates to methods and apparatus for optimizing access to a computer program storage device during program start-up, and more particularly to a method for reducing the time to launch a computer program.
A typical computer system includes at least a processing unit, a display device, a primary storage device (e.g., random access memory--RAM), a secondary storage device (e.g., a disk storage device), a keyboard, and a pointing/clicking device. Once a computer program is installed on the computer the program resides on the secondary storage device. The secondary storage device serves as a large permanent memory space. Exemplary secondary storage devices include a hard disk drive, a floppy disk drive, and a compact disk drive. There are many different types of disks, including magnetic disks, magneto-optical disks, optical disks, and floppy disks. To launch a program that is stored on the secondary memory device portions of the program are accessed and moved to the primary storage device. Conventionally, the primary storage device has a smaller address space and is accessed faster than the secondary storage device. Primary storage device memory space is generally treated as a more precious resource than the memory space of the secondary storage device.
A general purpose personal computer typically has many interactive application computer programs installed. A user is able to start-up multiple programs. With regard to an interactive computer program, the term "launch time", as used herein, means the time from when a processor receives a command to start the computer program until the time that the computer program is ready to accept input commands (e.g., user interface commands, batch-entry commands). The term "launch" as used herein means the process performed during the launch time to start up the computer program and get the computer ready to accept input commands for the computer program.
It is common for an application program for a personal computer to be stored in multiple files on the secondary storage device. There often is an executable file, a preferences file and many other files. Some programs include a data base file or a default data file. During a launch of the program multiple files are opened and select portions are moved from the secondary storage device into the primary storage device. When purchasing a computer program the packaging often specifies the amount of RAM address space (i.e., primary storage device address space) required to be allocated to the program while active. By active it is meant that the program has been launched and is currently processing or is currently able to accept input commands.